标量函数

Scalar functions

coalesce()

coalesce(expression [, expression]*)
  • 返回所给表达式中第一个不为null的值;
  • 给定值都是null则返回null;

endNode()

endNode(relationship)
  • 返回所给关系的尾结点;
  • relationship为null时返回null;

head()

head(expression)
  • 返回给定表达式的list的第一个元素;
  • express需要返回一个list;
  • head(null)、head([])与head([null,1])都会返回null;

id()

id(expression)

返回值:Integer

  • 返回expression表达的节点/关系的id;
  • 每个节点/关系实例都有一个独特的id,在同一个数据库中不会重复;
  • id(null)返回null;

last()

last(expression)

返回expression表达的list中最后一个元素

  • expression应表达一个list;
  • last(null)、last([])会返回null;
  • 列表本身就是null,也会返回null;

length()

length(path)

返回值:Integer

返回一条链路的长度,即链路上关系的个数,如:

matlab

MATCH p = (a)-->(b)-->(c)
RETURN length(p) AS length

该查询段的返回结果应为由2组成的单列表,表头为length

properties()

properties(expression)

返回值:Map

返回expression表达的节点/关系的所有属性值;

若expression本身就是一个Map,则返回它本身;

randomUUID()

randomUUID()

返回值:String

返回一个128bit的随机值,该值全局唯一

Universally Unique Identifier,亦称Globally Unique Identifier

size()

返回值:Integer

list

size(list)

返回list中元素的个数

  • size(null)会返回null;

pattern expression

size(pattern expression)

当pattern expression返回一个list时,size返回该list的元素个数,如:

MATCH(n)
WHERE n.name = 'JOJO'
RETURN size((n)-[defeat]->())

(n)-[defeat]->()返回一个list,其中含有所有JOJO与其打败过的人及“打败(defeat)”这一关系所组成的路径,size返回这一list中元素的个数

String

C++

size(string)

返回string中所包含字符的个数

startNode()

startNode(relationship)

返回值:Node

返回一个关系的头节点

startNode(null) 会返回null

timestamp()

timestamp()

返回值:Integer

返回当前时间与midnight, January 1, 1970 UTC之间的时间间隔,单位毫秒

toBoolean()

toBoolean(expression)

返回值:Boolean

将expression表达的String/Integer/Boolean值转为一个Boolean值

  • toBoolean(null)会返回null;
  • expression本身就是一个Boolean值,则会返回它本身;
  • 如果expression表达的String本身不是"true"或"false"(词语前后可以带空格),则会返回null;
  • 如果expression返回一个整数
  • 如果expression表达的不是String/Integer/Boolean,则会返回一个错误;

toBooleanOrNull()


toBooleanOrNull(expression)

返回值:Boolean或null

相较 toBoolean(),toBooleanOrNull()会在expression表达的不是String/Integer/Boolean时返回null

toFloat()

toFloat(expression)

返回值:Float

将expression表达的Integer/Float/String转为一个Float值

  • toFloat(null)会返回null;
  • 如果expression本身是一个Float,则会返回它本身;
  • 如果expression表达的内容不能被识别出一个浮点数,则会返回null;
  • 如果expression不是Integer/Float/String,则会返回一个错误;

toFloatOrNull()

toFloatOrNull(expression)

返回值:Boolean或null

相较 toFloat(),toFloatOrNull()会在expression表达的不是Integer/Float/String时返回null

toInteger()

toInteger(expression)

返回值:Integer

将expression表达的Boolean/Integer/Float/String转成一个Integer值

  • toInteger(null) 会返回null;
  • 如果expression表达的是一个Integer,则会返回它本身;
  • 如果expression表达的内容不能被识别为一个整数,则会返回null;
  • 如果expression表达的内容是一个Boolean
  • 如果expression表达的不是Boolean/Integer/Float/String,则会返回一个错误;

toIntegerOrNull()

toIntegerOrNull(expression)

返回值:Integer或null

相较于toInteger(),toIntegerOrNull()会在expression表达的不是Boolean/Integer/Float/String的时返回null

type()

type(relationship)

返回值:Sting

返回relationship的标签名